package cn.iocoder.yudao.module.ai.controller.admin.dataset.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 数据集管理分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class DatasetPageReqVO extends PageParam {

    @Schema(description = "数据集名称", example = "赵六")
    private String name;

    @Schema(description = "数据集描述", example = "你猜")
    private String description;

    @Schema(description = "素材来源 ： sd 手动上传 ；wl 识别 ；dz 电子封条同步；参考字典类型（material-library-type）", example = "2")
    private String sourceType;

    @Schema(description = "标注场景（文件类型） 1 图片；2 视频；参见字典 dataset_mark_file_type", example = "2")
    private String fileType;

    @Schema(description = "所属企业")
    private String ownerOrg;

    @Schema(description = "所属企业名称", example = "李四")
    private String ownerOrgName;

    @Schema(description = "标注类型，（1物体检测，2 实例分割）参见字典 dataset_mark_biz_type", example = "2")
    private String senceType;

    @Schema(description = "文件原始名称", example = "李四")
    private String fileOriginalName;

    @Schema(description = "文件存储路径")
    private String fileUploadPath;

    @Schema(description = "行业编号(所属行业)", example = "11846")
    private String industryId;
    @Schema(description = "行业编号（模型大类）", example = "11846")
    private String industryId2;
    @Schema(description = "行业编号（模型小类）", example = "11846")
    private String industryId3;

    @Schema(description = "标签标号列表,格式[{\"labelId\":1,\"labelName\":\"person\",\"color\":\"#223344\"}]")
    private String labelInfo;

    @Schema(description = "时长（针对视频）秒")
    private Long duration;

    @Schema(description = "包含原始文件数量")
    private Integer containFileNum;

    @Schema(description = "标注文件数量")
    private Integer markFileNum;

    @Schema(description = "标注文件标签列表，逗号隔开")
    private String markFileClasses;

    @Schema(description = "文件大小")
    private Long fileSize;


    @Schema(description = "质检状态 0 ,未质检；1 ，质检完成-合格,2 质检完成-不合格,3 质检中。查询多个状态，用英文逗号分开，例如，查询质检完成,传 '1,2' ", example = "1")
    private String qualityStatus;

    @Schema(description = "质检人编号", example = "19214")
    private String qualityUserId;

    @Schema(description = "质检时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] qualityTime;

    @Schema(description = "发布状态 0 未发布，1 已发布", example = "1")
    private String publishStatus;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "供应商id", example = "19701")
    private Long suplierId;

    /**
     * 起始时间 格式 yyyy-MM-dd HH:mm:ss
     */
    @Schema(description = "起始创建时间，格式 yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createTimeBegin;
    /**
     * 截止时间 格式 yyyy-MM-dd HH:mm:ss
     */
    @Schema(description = "截止创建时间，格式 yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createTimeEnd;

    @Schema(description = "标注状态 0 ,标注未完成；1 ，标注完成", example = "1")
    private String markStatus;

    @Schema(description = "质检任务名称", example = "赵六")
    private String qualityTaskName;

    @Schema(description = "质检任务描述", example = "你说的对")
    private String qualityTaskDescription;

    @Schema(description = "质检任务创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] qualityTaskCreateTime;

    @Schema(description = "质检任务创建人", example = "1413")
    private String qualityTaskUserId;

    @Schema(description = "质检任务标记。‘0’ 未创建 ；‘1’ 已创建")
    private String qualityTaskFlag;

}